using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("FriendMgr")]
	public class FriendMgr : MonoClass
	{
		public BnetPlayer m_selectedFriend => method_3<BnetPlayer>("m_selectedFriend");

		public BnetPlayer m_recentOpponent => method_3<BnetPlayer>("m_recentOpponent");

		public bool m_friendListScrollEnabled => method_2<bool>("m_friendListScrollEnabled");

		public float m_friendListScrollCamPosY => method_2<float>("m_friendListScrollCamPosY");

		public FriendMgr(IntPtr address, string className)
			: base(address, className)
		{
		}

		public FriendMgr(IntPtr address)
			: this(address, "FriendMgr")
		{
		}

		public static FriendMgr Get()
		{
			return MonoClass.smethod_15<FriendMgr>(TritonHs.MainAssemblyPath, "", "FriendMgr", "Get", Array.Empty<object>());
		}

		public BnetPlayer GetSelectedFriend()
		{
			return method_14<BnetPlayer>("GetSelectedFriend", Array.Empty<object>());
		}

		public void SetSelectedFriend(BnetPlayer friend)
		{
			method_8("SetSelectedFriend", friend);
		}

		public bool IsFriendListScrollEnabled()
		{
			return method_11<bool>("IsFriendListScrollEnabled", Array.Empty<object>());
		}

		public void SetFriendListScrollEnabled(bool enabled)
		{
			method_8("SetFriendListScrollEnabled", enabled);
		}

		public float GetFriendListScrollCamPosY()
		{
			return method_11<float>("GetFriendListScrollCamPosY", Array.Empty<object>());
		}

		public void SetFriendListScrollCamPosY(float y)
		{
			method_8("SetFriendListScrollCamPosY", y);
		}

		public BnetPlayer GetRecentOpponent()
		{
			return method_14<BnetPlayer>("GetRecentOpponent", Array.Empty<object>());
		}

		public void UpdateRecentOpponent()
		{
			method_8("UpdateRecentOpponent");
		}

		public void FireRecentOpponentEvent(BnetPlayer recentOpponent)
		{
			method_8("FireRecentOpponentEvent", recentOpponent);
		}

		public void Initialize()
		{
			method_8("Initialize");
		}

		public void OnFriendsChanged(BnetFriendChangelist changelist, object userData)
		{
			method_8("OnFriendsChanged", changelist, userData);
		}

		public void OnPlayersChanged(BnetPlayerChangelist changelist, object userData)
		{
			method_8("OnPlayersChanged", changelist, userData);
		}

		public void OnSceneLoaded(SceneMgr.Mode mode, PegasusScene scene, object userData)
		{
			method_8("OnSceneLoaded", mode, scene, userData);
		}

		public void OnGameOver(TAG_PLAYSTATE playState, object userData)
		{
			method_8("OnGameOver", playState, userData);
		}

		public void WillReset()
		{
			method_8("WillReset");
		}
	}
}
